package com.atguigu.dao;

import com.atguigu.bean.Book;
import com.atguigu.bean.Page;

import java.util.List;

/**
 * @ Author:任留辉
 * @ Description:
 * @ Date:Created in 17:09 2021/3/16 0016
 */
public interface BookDao {
    /**
     * 删除图书信息
     * @param bookId
     */
    void deleteBook(int bookId);

    /**
     * 添加图书信息
     * @param book
     */
    void addBook(Book book);

    /**
     * 根据id查询图书信息
     * @param bookId
     * @return
     */
    Book getBookById(int bookId);

    /**
     * 修改图书信息
     * @param book
     */
    void updateBook(Book book);

    /**
     * 获取图书的总记录数
     * @return
     */
    int getCount();

    /**
     * 通过page对象获取图书的分页信息
     * @param page
     * @return
     */
    List<Book> getBookByPage(Page<Book> page);

    /**
     * 获取价格区间条件下的总记录数
     * @param minPrice
     * @param maxPrice
     * @return
     */
    int getCountByPrice(int minPrice, int maxPrice);

    /**
     * 根据page对象和价格区间获取图书信息
     * @param page
     * @param minPrice
     * @param maxPrice
     * @return
     */
    List<Book> getBookByPageAndPrice(Page<Book> page, int minPrice, int maxPrice);

    /**
     * 更新图书的库存和销量
     * @param bookId
     * @param count
     */
    void updateSalesAndStock(Integer bookId, Integer count);
}
